# bandcamp-archive

### Description:
bandcamp-archive is a convenience utility for making offline archives
of bandcamp content. for any file downloaded, it creates a folder for
the uploader, and then inside that folder it creates another folder
named after the artist and the title of the album or track. 

example:
$DLDIR/example.bandcamp.com/Artist - Title/01 - Track 01 - $TRACKID.mp3

one of the current main features of bandcamp-archive is the ability to
download all albums from an uploader's index page, while still saving
each album to its own folder.


### Dependencies:
  * Python3

### Invocation:

##### GNU/Linux:
  
to download a single album or track
```bash
./bca.py https://example.bandcamp.com/album/example-album
```

or to download all albums:
```bash
./bca.py https://example.bandcamp.com/music
```

to see available options:
```bash
./bca.py -h
```

##### Windows:
1. run bca_windows_gui.bat
2. paste a bandcamp link into the dialog box

### Configuration:
for now bandcamp-archive will create a config file if not found in the
current directory. in time bandcamp-archive will support configuration
through both command line arguments, and the configuration file. 

### TODO List:
  * create a simple gui with tkinter
  * implement support for "name your price" and free HQ downloads
  * code cleanup 
  * add some type of support for user lists

### History:
bandcamp-archive was previously named bandcamp-dl, but it was eventually 
realized that there was already an older project with this name:

  * [https://github.com/Suyash458/bandcamp-dl]
  * [https://github.com/sam09/bandcamp-dl]
  * [https://github.com/iheanyi/bandcamp-dl]

bandcamp-archive is __not__ a fork of these, it was written from the
ground up with the following goals:

  * to be cross-platform
  * to keep dependencies to a minimum
  * to have the highest support of saving streaming quality mp3s
  * to save pages and pictures
  * to extract relevant data from the html pages and save as plain text
  * to eventually support automated higher quality downloads
  
bandcamp-archive previously was a wrapper around youtube-dl, but 
youtube-dl was not always able to retrieve links for streaming media.
because of this bandcamp-archive now uses an internal page parser to
generate links to streaming media. if preferred, youtube-dl can still be
used as the download utility.